package com.macro.mall.tiny.component;

import com.macro.mall.tiny.service.OmsPortalOrderService;
import com.macro.mall.tiny.service.PmsBrandService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author ：czx
 * @date ：Created in 2021/7/20 16:01
 * @descriptioin:订单超时取消并解锁库存的定时器
 * @modified By：
 */
@Component
public class OrderTimeOutCancelTask {
    private Logger LOGGER= LoggerFactory.getLogger(OrderTimeOutCancelTask.class);
    @Autowired
    private OmsPortalOrderService omsPortalOrderService;

    /**
     * description:cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year]
     * 每十分钟扫描一次,扫描设定超时时间之前下的订单,如果没有支付则取消该订单
     */
    @Scheduled(cron = "0 0/10 * ? * ?")
    private void cancelTimeOutOrder(){
        //此处调用取消订单的方法,具
        Integer counts = omsPortalOrderService.cancelTimeOutOrder();


        /*
        * 1-先查 status=0->待付款,
        * 2-再查以上的订单,提交时间是否大于设定的超市时间,如果大于超时时间,把这个订单设置为无效,并新增到订单历史表中
        *
        * */



        LOGGER.info("取消订单,并根据sku编号释放锁定库存,单数===={}",counts);


    }

}












